#include "Relation.h"

RelationItem::RelationItem(QDomElement source) : SharedDomObject(source)
{

}

int RelationItem::id()
{
    return m_source.attribute("id").toInt();
}

QString RelationItem::log()
{
    return m_source.attribute("log");
}

void RelationItem::setId(int id)
{
    m_source.setAttribute("id", id);
}

void RelationItem::setLog(const QString &log)
{
    m_source.setAttribute("log", log);
}

RelationItem RelationItem::clone()
{
    return RelationItem(m_source.cloneNode().toElement());
}

LinkList RelationItem::links()
{
    QDomElement linkList = m_source.firstChildElement(LinkList::tagName());
    if (linkList.isNull()) {
        linkList = m_source.ownerDocument().createElement(LinkList::tagName());
        m_source.appendChild(linkList);
    }
    return LinkList(linkList);
}

SimpleTagList RelationItem::simpleTags()
{
    QDomElement tagList = m_source.firstChildElement(SimpleTagList::tagName());
    if (tagList.isNull()) {
        tagList = m_source.ownerDocument().createElement(SimpleTagList::tagName());
        m_source.appendChild(tagList);
    }
    return SimpleTagList(tagList);
}

LinkItem::LinkItem(QDomElement source) : SharedDomObject(source)
{

}

QString LinkItem::path()
{
    return m_source.attribute("path");
}

quint64 LinkItem::size()
{
    return m_source.attribute("size").toULongLong();
}

QString LinkItem::qs()
{
    return m_source.attribute("qs");
}

void LinkItem::setPath(const QString &path)
{
    m_source.setAttribute("path", path);
}

void LinkItem::setSize(quint64 size)
{
    m_source.setAttribute("size", size);
}

void LinkItem::setQs(const QString &qs)
{
    m_source.setAttribute("qs", qs);
}
